package lx1;

public class Cook extends Thread{
    /*
    * 1.循环
    * 2.同步代码块
    * 3.执行逻辑
    * */
    @Override
    public void run() {
        while(true){
            //锁 要唯一
            //当一个线程执行到这里的时候，只有执行完毕里面所有的代码，其他线程才可以执行
            synchronized (Desk.lock){
                if(Desk.cnt == 0){
                    break;
                }
                else {
                        if(Desk.FoodFlag == 1) {
                            try {
                                Desk.lock.wait();//让当前线程跟Desk.lock这个锁绑定
                            } catch (InterruptedException e) {
                                throw new RuntimeException(e);
                            }
                        }
                        else{
                            Desk.cnt --;
                            System.out.println("厨师已经做了一碗面条");
                            Desk.FoodFlag = 1;
                            Desk.lock.notifyAll();

                        }
                }
            }
        }
    }
}
